package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.UserBean;

/**
 * 用户业务接口
 */
public interface IUserService {

    /**
     * 登陆用户，同时查询用户角色，同时查询用户权限，并记录登陆日志
     * @param username 用户名
     * @param password 密码
     * @return 用户对象
     */
    public UserBean login(String username,String password);

    /**
     *添加新用户，同时添加用户角色信息
     * @param user 用户对象
     * @param roleIdArr 角色ID数组
     */
    public void add(UserBean user,Integer[] roleIdArr);


    /**
     * 根据用户id删除用户,删除用户的角色
     * @param id
     */
    public void del(Integer id);

    /**
     * 修改用户角色
     * 1、根据用户id删除 用户的角色；
     * 2、再根据用户id批量添加 用户角色。
     * @param id 编号
     * @param roleIdArr 角色id集合
     */
    public void updateRole(Integer id, Integer[] roleIdArr);

    /**
     * 动态分页查询用户
     * @param pageNO 页码
     * @param realName 真实姓名
     * @return 用户分页对象
     */
    public IPage<UserBean> cutByItem(Integer pageNO,String realName);
    /**
     * 按编号查询用户对象，同时查询用户角色，同时查询用户权限，并记录登陆日志
     * @param id
     * @return
     */
    public UserBean findById(Integer id);
    /**
     * 修改密码
     * @param id 编号
     * @param password 密码
     */
    public void changePassword(Integer id,String password);

    /**
     * 按用户名查找用户
     * @param username 用户名
     * @return 用户对象
     */
   public UserBean findByName(String username);

}
